package
{
	import com.bourre.log.Logger;
	import com.bourre.log.PixlibDebug;
	import com.bourre.utils.AirLoggerLayout;
	
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	
	[SWF(width="600", height="600", frameRate="40", backgroundColor="0x000000")]
	public class AirLoggerBallDemo extends Sprite
	{
		protected var _ball : Sprite;
		protected var _sx : Number;
		protected var _sy : Number;
		
		public function AirLoggerBallDemo ()
		{
			
			Logger.getInstance().addLogListener( AirLoggerLayout.getInstance(), PixlibDebug.CHANNEL );

			initBall ();
			
			addEventListener( Event.ENTER_FRAME, enterFrameHandler );

			this.stage.scaleMode = StageScaleMode.NO_SCALE;
			this.stage.addEventListener(Event.ACTIVATE, onActivate );
		}
		
		public function enterFrameHandler ( e : Event ) : void
		{
			_ball.x += _sx;
			_ball.y += _sy;
			
			if( _ball.x - 10 < 0 )
			{
				PixlibDebug.DEBUG ( "La balle a touché le bord gauche de l'écran à la coordonnée : " + 
									( _ball.x - 10 )+ ", "+ ( _ball.y - 10 ) );
									
				_ball.x = 10;
				_sx *= -1;
			}
			else if( _ball.x + 10 > this.stage.stageWidth )
			{
				PixlibDebug.INFO ( "La balle a touché le bord droit de l'écran à la coordonnée : " + 
									( _ball.x - 10 )+ ", "+ ( _ball.y - 10 ) );
									
				_ball.x = this.stage.stageWidth - 10;
				_sx *= -1;
			}
			
			
			if( _ball.y - 10 < 0 )
			{
				PixlibDebug.WARN ( "La balle a touché le bord supérieur de l'écran à la coordonnée : " + 
									( _ball.x - 10 )+ ", "+ ( _ball.y - 10 ) );
									
				_ball.y = 10;
				_sy *= -1;
			}
			else if( _ball.y + 10 > this.stage.stageHeight )
			{
				PixlibDebug.ERROR ( "La balle a touché le bord inférieur de l'écran à la coordonnée : " + 
									( _ball.x - 10 )+ ", "+ ( _ball.y - 10 ) );
									
				_ball.y = this.stage.stageHeight - 10;
				_sy *= -1;
			}
		}
		
		public function initBall () : void
		{
			_ball = new Sprite();
			var g : Graphics = _ball.graphics;
			
			g.beginFill( 0xff0000, 1 );
			g.drawCircle( 0, 0, 10 );
			g.endFill();
			
			_ball.x = this.stage.stageWidth / 2;
			_ball.y = this.stage.stageHeight / 2;
			
			_sx = 4;
			_sy = 9;
			
			this.addChild( _ball );
		}
		
		public function onActivate ( e : Event ) : void
		{
			AirLoggerLayout.getInstance().focus();
		}	
	}
}